home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / prog / dflt18.arj / MENU.C < prev    next >
Text File  |  1992-01-21  |  2KB  |  86 lines

  1. /* ------------- menu.c ------------- */
  2.  
  3. #include "dflat.h"
  4.  
  5. static struct PopDown *FindCmd(MBAR *mn, int cmd)
  6. {
  7.     MENU *mnu = mn->PullDown;
  8.     while (mnu->Title != (void *)-1)    {
  9.         struct PopDown *pd = mnu->Selections;
  10.         while (pd->SelectionTitle != NULL)    {
  11.             if (pd->ActionId == cmd)
  12.                 return pd;
  13.             pd++;
  14.         }
  15.         mnu++;
  16.     }
  17.     return NULL;
  18. }
  19.  
  20. char *GetCommandText(MBAR *mn, int cmd)
  21. {
  22.     struct PopDown *pd = FindCmd(mn, cmd);
  23.     if (pd != NULL)
  24.         return pd->SelectionTitle;
  25.     return NULL;
  26. }
  27.  
  28. BOOL isCascadedCommand(MBAR *mn, int cmd)
  29. {
  30.     struct PopDown *pd = FindCmd(mn, cmd);
  31.     if (pd != NULL)
  32.         return pd->Attrib & CASCADED;
  33.     return FALSE;
  34. }
  35.  
  36. void ActivateCommand(MBAR *mn, int cmd)
  37. {
  38.     struct PopDown *pd = FindCmd(mn, cmd);
  39.     if (pd != NULL)
  40.         pd->Attrib &= ~INACTIVE;
  41. }
  42.  
  43. void DeactivateCommand(MBAR *mn, int cmd)
  44. {
  45.     struct PopDown *pd = FindCmd(mn, cmd);
  46.     if (pd != NULL)
  47.         pd->Attrib |= INACTIVE;
  48. }
  49.  
  50. BOOL isActive(MBAR *mn, int cmd)
  51. {
  52.     struct PopDown *pd = FindCmd(mn, cmd);
  53.     if (pd != NULL)
  54.         return !(pd->Attrib & INACTIVE);
  55.     return FALSE;
  56. }
  57.  
  58. BOOL GetCommandToggle(MBAR *mn, int cmd)
  59. {
  60.     struct PopDown *pd = FindCmd(mn, cmd);
  61.     if (pd != NULL)
  62.         return (pd->Attrib & CHECKED) != 0;
  63.     return FALSE;
  64. }
  65.  
  66. void SetCommandToggle(MBAR *mn, int cmd)
  67. {
  68.     struct PopDown *pd = FindCmd(mn, cmd);
  69.     if (pd != NULL)
  70.         pd->Attrib |= CHECKED;
  71. }
  72.  
  73. void ClearCommandToggle(MBAR *mn, int cmd)
  74. {
  75.     struct PopDown *pd = FindCmd(mn, cmd);
  76.     if (pd != NULL)
  77.         pd->Attrib &= ~CHECKED;
  78. }
  79.  
  80. void InvertCommandToggle(MBAR *mn, int cmd)
  81. {
  82.     struct PopDown *pd = FindCmd(mn, cmd);
  83.     if (pd != NULL)
  84.         pd->Attrib ^= CHECKED;
  85. }
  86.